package com.todo.auth.controller.response;

import lombok.Data;

import java.util.Date;
import java.util.Set;

/**
 * @author azhebuxing
 * @date 2025/2/20 03:04
 * @description
 */
@Data
public class LoginResponse {

    private String token;

    private CurrentLoginUserResponse currentUser;

    @Data
    public static class CurrentLoginUserResponse {
        private UserInfoResponse userInfo;
        private String roleKey;
        private Set<String> permissions;
    }

    @Data
    public static class UserInfoResponse {

        private Long userId;

        /**
         * 职位ID
         */
        private Long postId;

        /**
         * 职位名称
         */
        private String postName;

        /**
         * 角色ID
         */
        private Long roleId;

        /**
         * 角色名称
         */
        private String roleName;

        /**
         * 部门ID
         */
        private Long deptId;

        /**
         * 部门名称
         */
        private String deptName;

        /**
         * 用户名
         */
        private String username;

        /**
         * 用户昵称
         */
        private String nickname;

        /**
         * 用户类型
         */
        private Integer userType;

        /**
         * 邮件
         */
        private String email;

        /**
         * 号码
         */
        private String phoneNumber;

        /**
         * 性别
         */
        private Integer sex;

        /**
         * 用户头像
         */
        private String avatar;

        /**
         * 状态
         */
        private Integer status;

        /**
         * IP
         */
        private String loginIp;

        /**
         * 登录时间
         */
        private Date loginDate;

        /**
         * 创建者ID
         */
        private Long creatorId;

        /**
         * 创建者
         */
        private String creatorName;

        private Date createTime;

        private Long updaterId;

        private String updaterName;

        private Date updateTime;

        /**
         * 备注
         */
        private String remark;
    }
}
